home *** CD-ROM | disk | FTP | other *** search
- package Box2D.Dynamics
- {
- import Box2D.Collision.Shapes._hx306;
- import Box2D.Collision._cc280;
- import Box2D.Collision._kn203;
- import Box2D.Collision._lh680;
- import Box2D.Collision._lv495;
- import Box2D.Common.Math.b2Vec2;
- import Box2D.Dynamics.Contacts._nb823;
- import Box2D.Dynamics.Contacts._rl61;
-
- public class _gj519 extends _lv495
- {
- private static const s_evalCP:_lh680 = new _lh680();
-
- public var m_world:_fp437;
-
- public var m_destroyImmediate:Boolean;
-
- public var m_nullContact:_rl61;
-
- public function _gj519()
- {
- m_nullContact = new _rl61();
- super();
- m_world = null;
- m_destroyImmediate = false;
- }
-
- override public function _na764(param1:*, param2:*) : *
- {
- var _loc3_:_hx306 = null;
- var _loc4_:_hx306 = null;
- var _loc5_:_th791 = null;
- var _loc6_:_th791 = null;
- var _loc7_:_nb823 = null;
- _loc3_ = param1 as _hx306;
- _loc4_ = param2 as _hx306;
- _loc5_ = _loc3_.m_body;
- _loc6_ = _loc4_.m_body;
- if(_loc5_._ur192() && _loc6_._ur192())
- {
- return m_nullContact;
- }
- if(_loc3_.m_body == _loc4_.m_body)
- {
- return m_nullContact;
- }
- if(_loc6_._bd186(_loc5_))
- {
- return m_nullContact;
- }
- if(m_world.m_contactFilter != null && m_world.m_contactFilter._uv302(_loc3_,_loc4_) == false)
- {
- return m_nullContact;
- }
- _loc7_ = _nb823._em71(_loc3_,_loc4_,m_world.m_blockAllocator);
- if(_loc7_ == null)
- {
- return m_nullContact;
- }
- _loc3_ = _loc7_.m_shape1;
- _loc4_ = _loc7_.m_shape2;
- _loc5_ = _loc3_.m_body;
- _loc6_ = _loc4_.m_body;
- _loc7_.m_prev = null;
- _loc7_.m_next = m_world.m_contactList;
- if(m_world.m_contactList != null)
- {
- m_world.m_contactList.m_prev = _loc7_;
- }
- m_world.m_contactList = _loc7_;
- _loc7_.m_node1.contact = _loc7_;
- _loc7_.m_node1.other = _loc6_;
- _loc7_.m_node1.prev = null;
- _loc7_.m_node1.next = _loc5_.m_contactList;
- if(_loc5_.m_contactList != null)
- {
- _loc5_.m_contactList.prev = _loc7_.m_node1;
- }
- _loc5_.m_contactList = _loc7_.m_node1;
- _loc7_.m_node2.contact = _loc7_;
- _loc7_.m_node2.other = _loc5_;
- _loc7_.m_node2.prev = null;
- _loc7_.m_node2.next = _loc6_.m_contactList;
- if(_loc6_.m_contactList != null)
- {
- _loc6_.m_contactList.prev = _loc7_.m_node2;
- }
- _loc6_.m_contactList = _loc7_.m_node2;
- ++m_world.m_contactCount;
- return _loc7_;
- }
-
- override public function _tf499(param1:*, param2:*, param3:*) : void
- {
- var _loc4_:_nb823 = null;
- if(param3 == null)
- {
- return;
- }
- _loc4_ = param3 as _nb823;
- if(_loc4_ == m_nullContact)
- {
- return;
- }
- _ai321(_loc4_);
- }
-
- public function _ai321(param1:_nb823) : void
- {
- var _loc2_:_hx306 = null;
- var _loc3_:_hx306 = null;
- var _loc4_:int = 0;
- var _loc5_:_th791 = null;
- var _loc6_:_th791 = null;
- var _loc7_:_th791 = null;
- var _loc8_:_th791 = null;
- var _loc9_:Array = null;
- var _loc10_:_lh680 = null;
- var _loc11_:int = 0;
- var _loc12_:_kn203 = null;
- var _loc13_:int = 0;
- var _loc14_:_cc280 = null;
- var _loc15_:b2Vec2 = null;
- var _loc16_:b2Vec2 = null;
- _loc2_ = param1.m_shape1;
- _loc3_ = param1.m_shape2;
- _loc4_ = param1.m_manifoldCount;
- if(_loc4_ > 0 && Boolean(m_world.m_contactListener))
- {
- _loc7_ = _loc2_.m_body;
- _loc8_ = _loc3_.m_body;
- _loc9_ = param1._sg202();
- _loc10_ = s_evalCP;
- _loc10_.shape1 = param1.m_shape1;
- _loc10_.shape2 = param1.m_shape2;
- _loc10_.friction = param1.m_friction;
- _loc10_.restitution = param1.m_restitution;
- _loc11_ = 0;
- while(_loc11_ < _loc4_)
- {
- _loc12_ = _loc9_[_loc11_];
- _loc10_.normal._kh737(_loc12_.normal);
- _loc13_ = 0;
- while(_loc13_ < _loc12_.pointCount)
- {
- _loc14_ = _loc12_.points[_loc13_];
- _loc10_.position = _loc7_._pj447(_loc14_.localPoint1);
- _loc15_ = _loc7_._hg747(_loc14_.localPoint1);
- _loc16_ = _loc8_._hg747(_loc14_.localPoint2);
- _loc10_.velocity._br741(_loc16_.x - _loc15_.x,_loc16_.y - _loc15_.y);
- _loc10_.separation = _loc14_.separation;
- _loc10_.id._aw644 = _loc14_.id._key;
- m_world.m_contactListener._ai707(_loc10_);
- _loc13_++;
- }
- _loc11_++;
- }
- }
- if(param1.m_prev)
- {
- param1.m_prev.m_next = param1.m_next;
- }
- if(param1.m_next)
- {
- param1.m_next.m_prev = param1.m_prev;
- }
- if(param1 == m_world.m_contactList)
- {
- m_world.m_contactList = param1.m_next;
- }
- _loc5_ = _loc2_.m_body;
- _loc6_ = _loc3_.m_body;
- if(param1.m_node1.prev)
- {
- param1.m_node1.prev.next = param1.m_node1.next;
- }
- if(param1.m_node1.next)
- {
- param1.m_node1.next.prev = param1.m_node1.prev;
- }
- if(param1.m_node1 == _loc5_.m_contactList)
- {
- _loc5_.m_contactList = param1.m_node1.next;
- }
- if(param1.m_node2.prev)
- {
- param1.m_node2.prev.next = param1.m_node2.next;
- }
- if(param1.m_node2.next)
- {
- param1.m_node2.next.prev = param1.m_node2.prev;
- }
- if(param1.m_node2 == _loc6_.m_contactList)
- {
- _loc6_.m_contactList = param1.m_node2.next;
- }
- _nb823._ai321(param1,m_world.m_blockAllocator);
- --m_world.m_contactCount;
- }
-
- public function _yo98() : void
- {
- var _loc1_:_nb823 = null;
- var _loc2_:_th791 = null;
- var _loc3_:_th791 = null;
- _loc1_ = m_world.m_contactList;
- while(_loc1_)
- {
- _loc2_ = _loc1_.m_shape1.m_body;
- _loc3_ = _loc1_.m_shape2.m_body;
- if(!(_loc2_._bk718() && _loc3_._bk718()))
- {
- _loc1_._ne371(m_world.m_contactListener);
- }
- _loc1_ = _loc1_.m_next;
- }
- }
- }
- }
-
-